/*****************************************************************************
 * 常用方法
 ****************************************************************************/
var common = new _commonApi();

function _commonApi() {
	/************************************************************************
	 * 将js的日期类型转换为字符串类型
	 * @constructor
	 * @this {dateToString}
	 * @param {date} 日期类型
	 * @author fgg047 <9110530@qq.com>
	 * Note:示例：2018-01-01
	 ************************************************************************/
	this.dateToString = function(date) {
		var y = date.getFullYear();
		var m = date.getMonth() + 1;
		var d = date.getDate();
		return y + '-' + (m < 10 ? ('0' + m) : m) + '-' + (d < 10 ? ('0' + d) : d);
	}

	/************************************************************************
	 * 将js的日期类型转换为字符串类型
	 * @constructor
	 * @this {dateToString}
	 * @param {date} 日期类型
	 * @author fgg047 <9110530@qq.com>
	 * Note:示例：2018-01-01 12:23:20
	 ************************************************************************/
	this.dateTimeToString = function(date) {
		var str = "";
		var year = date.getFullYear() + "";
		var month = (date.getMonth() + 1) + "";
		var day = date.getDate() + "";
		var hour = date.getHours();
		var min = date.getMinutes();
		var second = date.getSeconds();

		if(month < 10) month = "0" + month;
		if(day < 10) day = "0" + day;
		if(hour < 10) hour = "0" + hour;
		if(min < 10) min = "0" + min
		if(second < 10) second = "0" + second;
		str = year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + second;
		return str;
	}

	/************************************************************************
	 * 将字符串转换成日期对象
	 * 格式：'yyyy-MM-dd HH:mm:ss'
	 * @constructor
	 * @this {str} 日期字符串
	 * @author fgg047 <9110530@qq.com>
	 * Note:示例：2018-01-01 12:23:20
	 ************************************************************************/
	this.stringToDateTime = function(str) {
		var tempStrs = str.split(" ");
		var dateStrs = tempStrs[0].split("-");
		var year = parseInt(dateStrs[0], 10);
		var month = parseInt(dateStrs[1], 10) - 1;
		var day = parseInt(dateStrs[2], 10);
		var timeStrs = tempStrs[1].split(":");
		var hour = parseInt(timeStrs[0], 10);
		var minute = parseInt(timeStrs[1], 10);
		var second = parseInt(timeStrs[2], 10);
		var date = new Date(year, month, day, hour, minute, second);
		return date;
	}

	/************************************************************************
	 * 从当前的URL请求地址中获取请求参数(请使用http中的同名方法)
	 * @constructor
	 * @param {key} 参数名称
	 * @author fgg047 <9110530@qq.com>
	 * Note:如果参数名称为空，则返回所有的参数
	 ************************************************************************/
	this.getRequestParams = function(key) {
		var url = window.location.href; //获取url中"?"符后的字串   
		var theRequest = new Object();
		var index = url.indexOf("?");
		if(index != -1) {
			var str = url.substr(index + 1);
			strs = str.split("&");
			for(var i = 0; i < strs.length; i++) {
				theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
			}
		}
		return key ? theRequest[key] : theRequest;
	}

	/************************************************************************
	 * 将源对象中存在的数据，复制到目标对象中
	 * @author fengjian
	 * @createDate 2015-03-09
	 * @param source - 源数据
	 * @param target - 目标数据
	 ************************************************************************/
	this.copyJsObject = function(source, target) {
		for(var key in source) {
			target[key] = source[key];
		}
	}

	/************************************************************************
	 * 将目标对象中存在的键名，从源对象中复制过来
	 * @author fengjian
	 * @createDate 2015-03-09
	 * @param source - 源数据
	 * @param target - 目标数据
	 ************************************************************************/
	this.copyJsObject2 = function(source, target) {
		for(var key in target) {
			if(source[key]) {
				target[key] = source[key];
			}
		}
	}

	/************************************************************************
	 * 从列表中根据键名和键值取得对应的所有属性数据
	 * @author fengjian
	 * @createDate 2015-03-09
	 * @param list - 列表
	 * @param key - 键名
	 * @param val - 键值
	 ************************************************************************/
	this.getDetail = function(list, key, val) {
		for(var i in list) {
			if(list[i][key] == val) {
				return list[i];
			}
		}
		return null;
	}

	/************************************************************************
	 * 从列表中根据键名取得对应的键值，拼接成字符串，以逗号隔开
	 * @author fengjian
	 * @createDate 2015-05-27
	 * @param list - 列表
	 * @param key - 键名
	 ************************************************************************/
	this.getListKeys = function(list, key) {
		var str = "";
		for(var i = 0; i < list.length; i++) {
			if(list[i][key] != "") {
				str = str + list[i][key] + ',';
			}
		}
		if(str != "") {
			str = str.substr(0, str.length - 1);
		}
		return str;
	}

	/************************************************************************
	 * 删除左右两端的空格
	 * @author fengjian
	 * @param str - 字符串
	 ************************************************************************/
	this.trimString = function(str) {
		return str.replace(/(^\s*)|(\s*$)/g, "");
	}

	/************************************************************************
	 * 截取字符串固定位数并添加省略号
	 * @author fengjian
	 * @param str - 字符串
	 * @param len - 要截取的长度
	 ************************************************************************/
	this.subContent = function(str, len) {
		//先取出换行前的文字
		if(str) {
			if(str.indexOf("\n") != -1) {
				str = str.substring(0, str.indexOf("\n"));
			}
			if(str.length > len) {
				str = str.substring(0, len) + "...";
			}
		}
		return str;
	}

}

//如果框架内的页面变成了top页面，则自动跳转至主页面
/*if (window == top) {
	 var pathName=window.document.location.pathname;
     var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+2);
     //排除的页面，即以下这些页面可以作为top页面
	if(pathName==projectName||pathName.indexOf("index.jsp")!=-1
        || pathName.indexOf("frame.jsp")!=-1
    ){

	}else{
		 top.location.href =projectName;
	}
}*/